package com.nlp.visualization.core.discourse;

import com.nlp.visualization.pojo.NLP.discourse.WordFrequencyTable;
import com.nlp.visualization.pojo.NLP.seg.SegmentEntity;

import java.util.List;
import java.util.Map;

public interface IDiscourseService {

    /**
     * 统计词频
     *
     * @param text
     * @return 词频表
     */
    WordFrequencyTable countWordFrequency(String text);

    /**
     * 获取所有的命名实体，目前支持中、日人名，地名，团体机构名
     *
     * @param text
     * @return
     */
    List getNamedEntity(String text);

    /**
     * 获取关键字
     *
     * @param text
     * @return
     */
    List getKeywords(String text, int count);

    /**
     * 获取地名标注信息
     *
     * @param text
     * @return
     * @throws Exception
     */
    List mapRemark(String text) throws Exception;


    /**
     * 获取摘要信息
     *
     * @param text
     * @return
     * @throws Exception
     */
    List getAbstract(String text, int count) throws Exception;


    /**
     * 获取主题
     *
     * @param text
     * @return
     */
    Map getTheme(String text);


    /**
     * 获取情感信息
     *
     * @param text
     * @return
     */
    Map getEmotion(String text);


    /**
     * 转词向量
     *
     * @param text
     * @return
     */
    List word2Vec(String text);


    /**
     * 获取敏感词
     *
     * @param text
     * @return
     */
    Map sensitiveWord(String text, int matchType);


    /**
     * 文本相似度计算
     *
     * @return
     */
    Map textNearCalculate(String text_A, String... texts);

}
